package pe.com.stefanini.core.util;

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import pe.com.bbva.util.FilaError;

public class ExcelUtil {

	
//	public static  List<PagoPBPBBVA> getListPagoPBPBBVA(File file)throws Exception{
//		List<PagoPBPBBVA> lstPagoPBPBBVA=new ArrayList<PagoPBPBBVA>();
//		PagoPBPBBVA pagoPBPBBVA=null;
//		Workbook excel=crearExcel(file);
//		for(int page=0;page<2;page++){			
//			Sheet  hoja =excel.getSheetAt(page);
//			int row=0;
//			Row fila=null;
//			fila=hoja.getRow(row++);
//			String efi="";
//			String moneda="";
//			
//			while(fila!=null){				
//				if((row-1)==0){
//					efi=fila.getCell(1).getStringCellValue();				
//				}else if((row-1)==1){
//					moneda=fila.getCell(1).getStringCellValue(); row++;
//				}else if((row-1)>3){
//					pagoPBPBBVA=new PagoPBPBBVA();
//					//pagoPBPBBVA.setNumeroPagina(numeroPagina);
//					pagoPBPBBVA.setEif(efi);
//					pagoPBPBBVA.setMoneda(moneda);
//					try{pagoPBPBBVA.setCredito(fila.getCell(0).getStringCellValue());}catch (Exception e) {break;}
//					pagoPBPBBVA.setNombre(fila.getCell(1).getStringCellValue());
//					pagoPBPBBVA.setNroCuota((int)fila.getCell(2).getNumericCellValue());
//					pagoPBPBBVA.setCapital(fila.getCell(3).getNumericCellValue());
//					pagoPBPBBVA.setInteres(fila.getCell(4).getNumericCellValue());
//					pagoPBPBBVA.setMonto(fila.getCell(5).getNumericCellValue());
//					lstPagoPBPBBVA.add(pagoPBPBBVA);
//				}
//				fila=hoja.getRow(row++);
//			}		
//		}
//		return lstPagoPBPBBVA;
//	}
//	
	public static Workbook crearExcel(File file)throws Exception{
		FileInputStream fis=new FileInputStream(file);
		String nombre=file.getName();
		String extension=nombre.substring(nombre.length()-4,nombre.length());
		if(extension.toLowerCase().equals("xlsx")){
				
			return new XSSFWorkbook(fis);
		}else{
			return new HSSFWorkbook(fis);
		}
	}
	
//	public static  Object[] getListSaldosIFI(File file)throws Exception{
//		
//		
//		
//		Workbook excel=crearExcel(file);
//		Object[] lstSaldos=new Object[3];
//		List<SaldoIFIConcesion> lstSaldosIFIConcesion=new ArrayList<SaldoIFIConcesion>();
//		List<SaldoIFINoConcesion> lstSaldosIFINoConcesion=new ArrayList<SaldoIFINoConcesion>();
//		List<SaldosIFITotal> lstSaldosIFITotal=new ArrayList<SaldosIFITotal>();
//		int row;
//		Row fila;
//		SaldosIFITotal saldosIFITotal=null;	
//		SaldoIFINoConcesion  saldoIFINoConcesion=null;
//		SaldoIFIConcesion saldoIFIConcesion=null;
//		Sheet hoja =excel.getSheetAt(0);//totales
//		row=1;
//		fila=hoja.getRow(row++);		
//		while(fila!=null){	
//			saldosIFITotal=new SaldosIFITotal();			
//			try{saldosIFITotal.setNombreCliente(fila.getCell(3).getStringCellValue());}
//			catch (java.lang.IllegalStateException e) {break;}
//			saldosIFITotal.setNroContrato(((int)fila.getCell(4).getNumericCellValue())+"");
//			saldosIFITotal.setNroContratoConcesional(((int)fila.getCell(5).getNumericCellValue())+"");			
//			saldosIFITotal.setFechaExpos(fila.getCell(6).getDateCellValue());
//			saldosIFITotal.setMoneda(fila.getCell(7).getStringCellValue());
//			saldosIFITotal.setImporteDesembolsado(fila.getCell(8).getNumericCellValue());
//			saldosIFITotal.setPrincipal(fila.getCell(9).getNumericCellValue());
//			saldosIFITotal.setInteres(fila.getCell(10).getNumericCellValue());
//			saldosIFITotal.setComision(fila.getCell(11).getNumericCellValue());
//			saldosIFITotal.setCuotasPendientes((int)fila.getCell(12).getNumericCellValue());
//			try{saldosIFITotal.setNroOrigen(fila.getCell(13).getStringCellValue());}
//			catch (java.lang.NullPointerException e) {}
//			lstSaldosIFITotal.add(saldosIFITotal);
//			fila=hoja.getRow(row++);
//		}
//		hoja =excel.getSheetAt(1);//totales
//		row=1;
//		fila=hoja.getRow(row++);//Tramo No Conces		
//		while(fila!=null){	
//			saldoIFINoConcesion=new SaldoIFINoConcesion();
//			try{saldoIFINoConcesion.setNombreCliente(fila.getCell(3).getStringCellValue());
//			}catch (java.lang.IllegalStateException e) {break;}
//			saldoIFINoConcesion.setNroContrato(((int)fila.getCell(4).getNumericCellValue())+"");						
//			saldoIFINoConcesion.setFechaExpos(fila.getCell(5).getDateCellValue());
//			saldoIFINoConcesion.setMoneda(fila.getCell(6).getStringCellValue());
//			saldoIFINoConcesion.setImporteDesembolsado(fila.getCell(7).getNumericCellValue());
//			saldoIFINoConcesion.setPrincipal(fila.getCell(8).getNumericCellValue());
//			saldoIFINoConcesion.setInteres(fila.getCell(9).getNumericCellValue());
//			saldoIFINoConcesion.setComision(fila.getCell(10).getNumericCellValue());
//			saldoIFINoConcesion.setCuotasPendientes((int)fila.getCell(11).getNumericCellValue());
//			try{saldoIFINoConcesion.setNroOrigen(fila.getCell(12).getStringCellValue());}
//			catch (java.lang.NullPointerException e) {}
//			lstSaldosIFINoConcesion.add(saldoIFINoConcesion);
//			fila=hoja.getRow(row++);
//		}	
//		hoja =excel.getSheetAt(2);//totales
//		row=1;
//		fila=hoja.getRow(row++);//Tramo No Conces		
//		while(fila!=null){	
//			saldoIFIConcesion=new SaldoIFIConcesion();			
//			try{saldoIFIConcesion.setNombreCliente(fila.getCell(3).getStringCellValue());
//			}catch (java.lang.IllegalStateException e) {break;}
//			saldoIFIConcesion.setNroContrato(((int)fila.getCell(4).getNumericCellValue())+"");						
//			saldoIFIConcesion.setFechaExpos(fila.getCell(5).getDateCellValue());
//			saldoIFIConcesion.setMoneda(fila.getCell(6).getStringCellValue());
//			saldoIFIConcesion.setImporteDesembolsado(fila.getCell(7).getNumericCellValue());
//			saldoIFIConcesion.setPrincipal(fila.getCell(8).getNumericCellValue());
//			saldoIFIConcesion.setInteres(fila.getCell(9).getNumericCellValue());
//			saldoIFIConcesion.setComision(fila.getCell(10).getNumericCellValue());
//			saldoIFIConcesion.setCuotasPendientes((int)fila.getCell(11).getNumericCellValue());
//			try{saldoIFIConcesion.setNroOrigen(fila.getCell(12).getStringCellValue());}
//			catch (java.lang.NullPointerException e) {}
//			lstSaldosIFIConcesion.add(saldoIFIConcesion);
//			fila=hoja.getRow(row++);
//		}	
//		lstSaldos[0]=lstSaldosIFITotal;
//		lstSaldos[1]=lstSaldosIFINoConcesion;
//		lstSaldos[2]=lstSaldosIFIConcesion;		
//		return lstSaldos;
//	}
	
	public static FilaError getFilaError(int fila, String columna, String mensaje) {
		FilaError error = new FilaError();
		error.setNumFila(fila);
		error.setNombreColumna(columna);
		error.setDescripcionError(mensaje);
		return error;
	}
	
	public static FilaError getFilaError(int fila, String columna,int hoja, String mensaje) {
		FilaError error = new FilaError();
		error.setNumFila(fila);
		error.setNumHoja(hoja);
		error.setNombreColumna(columna);
		error.setDescripcionError(mensaje);
		return error;
	}
	
//	public static  List<FactorVac> getListFactorVac(File file)throws Exception{
//		FileInputStream fis=new FileInputStream(file);
//		List<FactorVac> lstFactorVac=new ArrayList<FactorVac>();
//		FactorVac factorVac=null;
//		Workbook excel=crearExcel(file);
//		Sheet  hoja =excel.getSheetAt(0);
//		int row=1;
//		Row fila=null;
//		fila=hoja.getRow(row++);		
//		while(fila!=null){
//			factorVac=new FactorVac();
//			//factorVac.setDia((int)fila.getCell(0).getNumericCellValue()); //TODO: REVISAR ESTO!!
//			factorVac.setMes(fila.getCell(1).getStringCellValue());
//			//factorVac.setAnio((int)fila.getCell(2).getNumericCellValue());
//			factorVac.setValorVAC(fila.getCell(3).getNumericCellValue());
//			lstFactorVac.add(factorVac);
//			fila=hoja.getRow(row++);			
//		}
//		return lstFactorVac;
//	}
}
